//app.js
const Store = require('./utils/store.js');
const updateManager = wx.getUpdateManager();
const API_URL = ``;
const IMAGES_URL = "";
const IMG_Prefix = "";
let store = new Store({
  state: {
    isShowLoadingModal: false, //Loading动画状态
    isShowFailedToLoad: false,//全局接口请求加载失败样式
  },
})
App({
  onLaunch: function () {
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
  },
  onShow: function (options) {
    let _this = this;
    //获取设备信息
    wx.getSystemInfo({
      success: e => {
        let even = e;
        let custom = wx.getMenuButtonBoundingClientRect();
        _this.globalData = {
          Platform: even.platform,
          StatusBar: even.statusBarHeight,
          Custom: custom,
          CustomBar: custom.bottom + custom.top - even.statusBarHeight,
          API_URL: API_URL,
          IMAGES_URL: IMAGES_URL,
          IMG_Prefix: IMG_Prefix,
          sVersion: '3.1.3.3', //系统版本
          SceneValue: options.scene, //本次场景值
        }
      },
      fail:err => {
        console.log('wx.getSystemInfo:fail', err)
      }
    })
    _this.checkForUpdate()
  },
  checkForUpdate: function () {
    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
    })
    updateManager.onUpdateReady(function () {
      wx.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })
    })
    updateManager.onUpdateFailed(function () {
      // 新版本下载失败
    })
  },
  store: store,
  globalData: {
    userInfo: null
  }
})